package com.uncp.comisiondeadmision.dao;

import java.sql.SQLException;
import java.util.List;

import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Query;

import com.uncp.comisiondeadmision.util.entity.ECarnet;
import com.uncp.comisiondeadmision.util.entity.EPostulante;

public class DCarnet implements IDCarnet{
	
	private EntityManagerFactory emf ;
	private EntityManager em;
	
	public void setEmf(EntityManagerFactory emf ) {
		this.emf = emf;
	}

	@SuppressWarnings("unchecked")
	public List<EPostulante> listaPostulantesPorEstados(String estadoPostu,String estadoSolic) throws SQLException {
		 
		 em=emf.createEntityManager();
		 em = emf.createEntityManager();
			
		 List<EPostulante> lista = null;

		try {
		   
		   Query query = em.createQuery("select p from ESolicitud s inner join " +
			   								  "  s.postulante p" +
			   								  "  where  p.str_estado_postu=:estadoPostu " +
										   	  "  and s.str_estado =:estadoSolic");
		  
		   query.setParameter("estadoPostu", estadoPostu);
		   query.setParameter("estadoSolic", estadoSolic);

		   lista = query.getResultList();
		   
		} catch (Exception e) {
			e.printStackTrace();
		}finally{
	      em.close();
		}

		return lista;
	}

	public Integer insertarCarnet(ECarnet entidad) throws SQLException {
		
		Integer inserto = -1 ;
		em = emf.createEntityManager();

		try {
			em.getTransaction().begin();
			em.persist(entidad);
			inserto = 1;

		} catch (Exception e) {
			e.printStackTrace();
			em.getTransaction().rollback();
			inserto = -1;
		} finally {
			em.getTransaction().commit();
			em.close();
		}

		return inserto;
	}

}
